#include "stdafx.h"
#include "CWriteMemory.h"
#include "memory.h"
////////////////////////////////////////////////////////////////////////////////////////////////////

CWriteMemory::CWriteMemory(int size)
{
	m_buffer = GL_NEW char[size];
	m_bufferSize = size;
	m_nCrtPos = 0;

	memset(m_buffer, 0, size);
}

////////////////////////////////////////////////////////////////////////////////////////////////////

CWriteMemory::~CWriteMemory()
{
	SAFE_DELETE_ARRAY(m_buffer);
}

////////////////////////////////////////////////////////////////////////////////////////////////////

int CWriteMemory::write(const void* buffer, unsigned int sizeToWrite)
{
	ASSERT(sizeToWrite < m_bufferSize - m_nCrtPos);
	int sizeWriten = min(sizeToWrite, m_bufferSize - m_nCrtPos);
	if (sizeWriten > 0)
	{
		memcpy(m_buffer + m_nCrtPos, buffer, sizeWriten);
		m_nCrtPos += sizeWriten;
	}

	return sizeWriten;
}

////////////////////////////////////////////////////////////////////////////////////////////////////

bool CWriteMemory::seek(long finalPos, bool relativeMovement)
{
	m_nCrtPos = finalPos;
	return true;
}


////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
